ECROs: Building Global Scale Systems from Sequential Code
Replicated data types (RDTs) such as CRDTs are becoming increasingly popular as a simplified way for programming distributed systems. RDTs are local data structures with a familiar interface (such as sets, lists, trees) that can automatically synchronize data between multiple devices in the background. Even though RDTs are often considered to be simpler to implement than other approaches to eventual consistency, the construction of correct RDTs is still difficult and error-prone. To overcome this challenge, the authors of the linked paper propose an alternative to implementing ad-hoc RDTs: ECROs. Application programmers should rather stick to "regular" sequential data types that they enrich with invariants that specify the application semantics. Conflicting operations can be statically identified and handled at runtime through reordering or coordination depending on the requirements derived from the specified invariants.
For this seminar topic, you will look into how CRDTs work and explore how ECROs provides an alternative to regular CRDTs. Additionally, you will provide a comparison to other approaches with the same goal.